//
//  Object+printIvar.swift
//  表情键盘
//
//  Created by 叶周翔 on 16/7/30.
//  Copyright © 2016年 叶周翔. All rights reserved.
//

import Foundation
extension NSObject{
    
    class func printIvar() {
        // 使用运行时来获取类的属性
        // cls: AnyClass! 获取哪个类的成员变量的属性
        // outCount: UnsafeMutablePointer<UInt32> 获取到成员变量的属性
        //
        var count: UInt32 = 0
        let ivars = class_copyIvarList(self, &count)
        
        // 遍历数组
        for var i = 0; i < Int(count); i++ {
            let ivar = ivars[i]
            // C语言获取数组或者是结构体 一般是会提供方法
            let cName = ivar_getName(ivar)
            let name = String(CString: cName, encoding: NSUTF8StringEncoding)
            let cType = ivar_getTypeEncoding(ivar)
            let type = String(CString: cType, encoding: NSUTF8StringEncoding)
        }
    }
}